// 数组的解构: 以前只能通过索引来获取数组中的值，数据的解构可以快速的获取数组中的值
const arr = [100, 200,300]

// 传统方法
const foo = arr[0]
const bar = arr[1]
const baz = arr[3]
console.log(foo, bar, baz)
// [] 提取出来的数据所存放的变量名
const [, , baz] = arr
console.log(baz)

// 获取其他某个位置的成员，但需要保留解构所在的逗号，
// 保证解构数组的格式与原来数组格式是一致的；
// ...： ...rest 只能放在解构位置最后一个成员上去使用
const [foo, ...rest] = arr
console.log(rest) // 200， 300

// //解构成员的个数小于数组长度，按照从前到后的顺序去提取，多出来的成员不会被提取
const [foo, bar , baz, more] = arr
console.log(foo) //100

// // 解构成员的个数大于数组长度，提取的数据是 undefined
const [foo, bar , baz, more] = arr
console.log(more) // undefined

// // 给提取的成员设置默认值，在解构位置的变量名赋值,如果解构到对应的值，那么就会得到默认值
const [foo, bar , baz = 123, more = 'defalut value'] = arr
console.log(baz, more) // 123, defalut value'

// 场景：拆分字符串
// 传统方式
const path = '/foo/bar/baz'
const tmp = path.split('/')
const rootdir = tmp[1] 
console.log(tmp,rootdir) // foo
//解构方式
const [, rootdir] = path.split('/')
console.log(rootdir) // foo
